LoadLibrary加载动态库失败的解决办法

您所在的位置:网站首页 loadlibrary failed:7e LoadLibrary加载动态库失败的解决办法

LoadLibrary加载动态库失败的解决办法

2024-07-10 21:21| 来源: 网络整理| 查看: 265

方式一:LoadLibraryEx

转载:http://blog.sina.com.cn/s/blog_62ad1b8101017qub.html

若DLL不在调用方的同一目录下,可以用LoadLibrary(L"DLL绝对路径")加载。但若调用的DLL内部又调用另外一个DLL,此时调用仍会失败。解决办法是用 LoadLibraryEx,通过指定 LOAD_WITH_ALTERED_SEARCH_PATH,让系统DLL搜索顺序从DLL所在目录开始。

LoadLibraryEx("DLL绝对路径", NULL, LOAD_WITH_ALTERED_SEARCH_PATH);

 

方式二:SetCurrentDir

转载:http://blog.csdn.net/flyayi2006/article/details/5526982

跨目录调用dll,你应该这样: 1、用 GetCurrentDir 保存当前的工作目录 2、用 SetCurrentDir 将当前的工作目录,设置为你的DLL所在的路径,需要使用绝对路径 3、用 LoadLibrary 你的DLL 4、使用 SetCurrentDir 恢复到原来的工作路径

char szCurDir[MAX_PATH] = { 0 }; GetCurrentDirectory(MAX_PATH, szCurDir); SetCurrentDirectory(strDllDir.c_str()); HINSTANCE hInstance = LoadLibraryEx(strDllPath.c_str(), NULL, LOAD_WITH_ALTERED_SEARCH_PATH); SetCurrentDirectory(szCurDir); if (hInstance == NULL) { MessageBox("加载DLL失败"); } else { MessageBox("加载DLL成功"); }

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3